package com.hmdp.controller;

import com.hmdp.dto.Result;
import com.hmdp.service.IFollowService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * <p>
 * 前端控制器
 * </p>
 * 控制器负责接收前端请求并调用相应的服务进行处理
 * 由于是RESTful风格的控制器，因此通过@RequestMapping注解指定了根路径为"/follow"
 * 该控制器处理与关注功能相关的请求
 *
 * @author 虎哥
 */
@RestController
@RequestMapping("/follow")
public class FollowController {

    @Resource
    private IFollowService followService;

    // 处理关注或取消关注请求
    @PutMapping("/{id}/{isFollow}")
    public Result follow(@PathVariable("id") Long followUserId, @PathVariable("isFollow") Boolean isFollow) {
        // 调用关注服务进行关注或取消关注操作，并返回结果
        return followService.follow(followUserId, isFollow);
    }

    // 处理查询是否关注请求
    @GetMapping("/or/not/{id}")
    public Result isFollow(@PathVariable("id") Long followUserId) {
        // 调用关注服务查询是否关注，并返回结果
        return followService.isFollow(followUserId);
    }

    // 处理查询共同关注请求
    @GetMapping("/common/{id}")
    public Result followCommons(@PathVariable("id") Long id){
        // 调用关注服务查询共同关注，并返回结果
        return followService.followCommons(id);
    }
}
